Object-oriented programming is now widely used to provide efficient development/maintenance of computer programs. In the case of object-oriented programming, program components are created from a group of objects (classes) and those components are combined for component-based system development so that a predetermined task (processing) is realized. For example, in the case of a component (Java Bean) that uses Java Beans, which is a Java component creating technique, the component, when receiving an event, executes a communication method so as to update the component property or call a communication method from a different component (or instance) so as to issue an event to the different component. The operations (methods) of those components are combined so as to realize a complicated task. It is premised here that those components can exchange messages (information or data) with other components.
Components exist in one and the same hardware system in some cases and they exist in a LAN (Local Area Network) and/or a network connected via the Internet in other cases. Consequently, each of distributed components requires a protocol used for data communications in the network. For example, the HTTP (HyperText Transfer Protocol), which is a standard communication protocol of the Internet, can be used among the components connected to each other via the Internet. When higher reliability is required for data communications, the distributed object standard IIOP (Internet Inter-ORB Protocol) employed for the CORBA (Common Object Request Broker Architecture) can be used. When in asynchronous communications, MQ (Message Queuing) can be used. For communication between a host computer and each terminal, SNA (Systems Network Architecture) can be used. When JVM (Java Virtual Machine) is operating, the RMI (Remote Method Invocation) library can be used. And, because RMI also corresponds to the IIOP in Java 2, the RMI over IIOP can be used. Java, Java Beans, and Java 2, described above are all the trademarks of Sun Microsystems Corporation. Windows, Unix, C, and C++, to be described below are trademarks of corporations and groups that hold them.
A component-based system can execute a variety of processings. Examples of such processings are ERP (Enterprise Resource Planning) for basic business activities in corporations, such as production/inventory control, financial accounting control, and personnel/wage payment, as well as those of data base management systems, and web servers. Generally, an intra-net operated in a corporation must be designed so as to assure high communication reliability. In addition, such an intra-net requires a system to be built so as to cope with mission critical processings that must be executed as fast as possible. On the other hand, a web application program is hardly used for tasks that compete with others in units of one second. A system employed for such a web application program can thus be built with not-so-high communication reliability. Consequently, when such a system is to be built, a protocol to be employed for the communication among components depends on the system requirement or the characteristic of the processings executed by those components. For example, IIOP should preferably be employed for a system used for mission critical processings in a corporation from the viewpoints of connection reliability, easiness of error locating/investigation, security, transaction context transfer possibility, and performance level. For a web application program, therefore, it would be proper to employ HTTP, which is an actual standard protocol for web application programs. HTTP may also be used easily for building firewalls. The MQ should preferably be employed for the communication with asynchronous systems.
Each of those protocols also has disadvantages. For example, IIOP fixes the communication interface for application programs (components) that use the IIOP. Consequently, when any part of the data specifications is modified, for example when a communication data attribute is newly added to the interface, the interface must also be modified so as to meet the modification. In other words, the assurance of HTTP in communication reliability is lower than that of the IIOP. In addition, the HTTP cannot follow up detected errors easily. Basically, HTTP just specifies transfer of character strings, so that HTTP cannot assure communication reliability for binary data. To transfer binary data by HTTP, therefore, data must be encoded to a character set before it is transferred. The load of the server thus increases due to such encoding/decoding of binary data before the transfer and accordingly, the processing time also increases due to the increased load. This is why it is difficult to apply HTTP for mission critical processings.
As described above, each of the protocols has both advantages and disadvantages. The system developer must thus consider both advantages and disadvantages so as to select a protocol used for building a system. On the other hand, when one application (component) program uses a plurality of protocols, the program communication part (interface) must be created appropriately to each protocol. This means that the programmer must be aware of the subject protocol when creating a program for sending/receiving data. When programmers are required to consider the communication protocol in addition to the component functions, degradation of the system development efficiency will result.
IIOP is effective when employed for a system that is attracting a great deal of attention and being used for transactions (B2B) among corporations via the Internet in recent years, as IIOP provides both high communication reliability and high performance. For B2B transactions, however, existing corporation systems must be connected to each other via the Internet. For B2C transactions (transactions between a corporation and its customers), each corporation can present each customer who accesses the server with a data input screen defined uniquely, so that the corporation can decide the data format independently of others. For B2B transactions, however, most of the connected corporation systems are already built, so that consideration must be given to matching among the data formats of connected corporations. For example, it is required to prepare the middleware used for transferring data, as well as coping with changes of the data formats of the connected corporations. Under such circumstances, the following problem will arise when IIOP is employed with no modification for B2B transactions among corporations. While IIOP has the above-described advantages, the communication interface is fixed for application programs that use the IIOP. Consequently, when such modification as addition of a data attribute, and so forth is done in a connected communication system, the interface must also be modified so as to meet the modification. When part of a data specification is modified so as not to affect any component that uses the interface directly while other components (or class) use this interface, the components are affected by the interface modification; consequently, they are typically updated by recompiling. When many components use the interface, the work load for coping with such modification of data specifications increases significantly. Such interface modification is also required in protocols other than IIOP. In such a case, the problem as described above will also arise, of course.
Furthermore, when both communication interface and communication data are generalized, the communication interface technique and the communication data structure of the present invention are required to endure use on a practical level. Especially, the communication interface technique and the communication data structure are required to meet high level responses needed for mission critical processings to be expected in transactions in each corporation or among corporations.